[INV-BACKEND-025] Создать метод OnVoiceStreamConnect()

Реализация WebSocket-сервера удержания аудиосессий и сборки чанков

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

  • Инструкция по шагам:
    1. На Шаге 4–5: Обеспечить прием и долгосрочное удержание WebSocket-соединения от клиента. Извлечь проброшенные шлюзом метаданные x_request_id и app_lang.
    2. Принимать непрерывный поток бинарных чанков аудиоданных (.mp3/.ogg/PCM) в асинхронном бесконечном цикле.
    3. На Шаге 6: Открывать и удерживать двунаправленный (Bidirectional) gRPC-стрим к микросервису grpc-analytics. Транслировать каждый прилетевший бинарный чанк в gRPC-метод TranscribeAudioChunkStream.
    4. На Шаге 8: Перехватывать промежуточные текстовые ответы от gRPC-сервиса и моментально выталкивать текстовые строки обратно в WebSocket-канал клиента для real-time отображения текста под диктовку на экране смартфона.
    5. На Шаге 9–10: При получении от UI управляющего текстового события CLOSE_STREAM остановить бесконечный цикл чтения чанков. Закрыть gRPC-стрим, собрать весь накопленный за сессию текст в единую строковую переменную и опубликовать JSON-пакет (raw_text_input, app_lang, x_request_id, "source": "STREAM_WHISPER_V2") в Kafka-топик bpds.inventory.in.receipt.upload. Закрыть WebSocket-соединение.